专利摘要:
The invention relates to securing the loading of data from an external device into a code memory area defined by an initial program of the secure element and whose modification is controlled solely by it. When the external device obtains data to be transmitted to the secure element, the latter simulates an image of the code memory area as it would be modified by the loading of these data. A signature is calculated from the simulated image and sent to the secure element with the data. The initial program of the secure element compares a signature that it has calculated over the entire code memory area after the actual data loading, to the signature received from the external device. The identity between these signatures makes it possible to ensure that the code memory zone conforms to the image simulated by the external device, and therefore integrates.
公开号:FR3019347A1
申请号:FR1452519
申请日:2014-03-25
公开日:2015-10-02
发明作者:Sebastien Nerot
申请人:Oberthur Technologies SA;
IPC主号:
专利说明:

[0001] FIELD OF THE INVENTION The invention relates to the field of secure elements such as smart cards. In particular, the invention provides methods and devices for securing the loading of data into a non-volatile memory of a secure element.
[0002] BACKGROUND OF THE INVENTION A secure element, for example a smart card, is typically in the form of a microcircuit, removably integrated in a host electronic device, or alternatively embedded (for example, soldered) in such a device. electronic. For example, a secure element can be an eSE ("embedded secure element" for embedded security element) or an eUICC ("embedded Universal Integrated Circuit Card" for embedded and universal integrated circuit card). A secure element includes a processor of its own, different from the processor of the host electronic device in which it is embedded or embedded, and includes a non-volatile memory for storing computer programs executable by the processor. A non-modifiable area of the non-volatile memory stores a so-called "initial" or "basic" program generally of small size, for example a bootstrap program (Boot Loader in English) memorized by the manufacturer of the secure element. The initial program provides functionality that enables an intermediary, such as an operator or provider of secure elements to users, to customize the secure element by loading, in a particular area of the non-volatile memory defined by the initial program, software elements generally consisting of compiled or interpreted code (that is to say codewords or "bytecodes" in language or machine code directly executable by a processor), such as an operating system or applications. This initial program is for example associated with a particular operating system which includes a port management module for communicating with this initial program, a memory update management module, a command interpreter , and security modules that ensure the security of this initial program. This particular operating system is customized by the manufacturer of the secure element, and its modification is not allowed after the customization. In general, this initial program is the first program implemented when starting the secure element, that is to say before any other program that would be present in memory of the secure element. This program is essential for the implementation of other programs of the secure element. The particular area of the aforementioned non-volatile memory is entirely managed by the initial program, which is the only one to be able to modify the limits of the particular zone, as well as its contents.
[0003] More precisely, these terminals can be stored in registers of the initial program, or alternatively, be the result of the execution, by the initial program, of commands defining them. In any case, the definition as well as any modification of the limits can only result from an action of the initial program.
[0004] In addition, only the initial program can enable (or disable) the particular zone so as to allow (or prohibit) the execution of its contents. Generally, the above-mentioned area is dedicated to the storage of compiled or interpreted code, as such, it will be called thereafter "code memory area". It is particularly important that the code memory area is not modified during the execution of the software elements it contains, in order to guarantee the integrity of the applications and operating system that these software elements implement in the program. secure element. During the lifetime of the secure element, other software elements may be loaded into the code memory area. This is for example a new version of a software item already stored (update of the software element) or new data. In order to guarantee, before activation, that is to say before authorizing the execution, the integrity and the legitimacy of these software elements subsequently loaded into the code memory zone, verification mechanisms are implemented, typically by the initial program.
[0005] For example, the document FR 2 996 682 describes a bootstrap program executed when the secure element is started, making it possible to obtain the code of a new version of an operating system from a setting device. when the installed operating system becomes obsolete. The code integrity of this new operating system version is verified by the code block code block primer program, as well as as a whole, before allowing the activation of the new version of the code system. exploitation. However, the integrity check only applies to newly received and loaded software items.
[0006] Thus, a piece of software, type malware, stored in the code memory area by a malicious person prior to loading a new piece of software is not detected by the boot program during this period. Integrity check, since it only concerns the newly loaded software element. So there is a security breach.
[0007] Similarly, a security breach exists when a malicious person modifies or damages, for example by laser attack, a software item already stored in this code memory area. Indeed, the integrity check on new loaded software elements does not detect this modification or damage to the contents of the code memory area.
[0008] There is therefore a need to improve the control of the security of the secure element, including the integrity of the software elements when loading data in this area of memory. SUMMARY OF THE INVENTION The present invention thus aims to overcome at least one of these disadvantages. In this context, a first aspect of the invention relates to a method for securing the loading of data into a non-volatile memory of a secure element, said non-volatile memory comprising a memory zone, called code memory zone, defined by an initial program of the secure element and whose modification is controlled solely by said initial program, said method comprising the following steps implemented by a device external to the secure element: - obtaining data to be transmitted to the secure element ; simulating an image of the code memory zone modified by the loading of the data obtained, in this code memory zone of the secure element; calculating a signature of the simulated image of the code memory zone as a whole; and transmitting, to said secure element, the data obtained and the calculated signature. Correlatively, a second aspect of the invention relates to a method for securing the loading of data in a non-volatile memory of a secure element, said non-volatile memory comprising a memory zone, called code memory zone, defined by a program initial of the secure element and whose modification is controlled only by said initial program, said method comprising the following steps implemented by the secure element: - receive, from an external device, data and a signature; - load, in a part of the code memory area, the data received from the external device; - calculate a signature of the entire code memory area once the data loaded; and - checking the signature calculated using the received signature, so as to authorize the execution of the contents of the code memory area only if these two signatures are identical. Thus, the invention makes it possible to control the integrity of the data loaded in the secure element, but also of the code memory zone after the loading of these data which occupy only part of this memory zone.
[0009] This advantage is obtained by calculating a signature based on a simulation of the image of the memory area as a whole, as it would result from the loading of the data as a whole, instead of only taking into account the loaded data. as in the prior art. The external device thus simulates the location and the value of each of the bits of the code memory area as it would be modified or not by the loading of the data to be loaded. Unexpected code by its value and / or its location in the code memory area can then be detected within the code memory area, since its presence induces a difference between the calculated signature on the simulated image at the device level. external and the signature calculated by the secure element itself on the memory area after the actual data loading. Thus, when the signature computed by the device from a simulated image of the code memory area corresponding to a memory state after loading the data, and the signature of the code memory area after effective loading of these data differ, the activation of the code memory area, that is to say the execution of its content, and therefore in particular of the data loaded in the secure element, is made impossible (ie is prohibited). Data loading for execution is thus secure. The invention thus makes it possible to detect that a piece of code compiled or interpreted (or more generally unexpected data) has been stored at an unexpected location of the code memory area, or does not have the expected value. For example, the presence of a malicious piece of software, or the modification or the damage of a piece of software already in memory during the loading of the data, is detected by the initial program of the secure element during the verification of the signature calculated over the entire memory area obtained after said loading, using the provisional signature received from the external device. Other features according to embodiments of the invention are described in the dependent claims.
[0010] In particular embodiments of the invention, said data are transmitted to the secure element in response to a request for obtaining the data, and the obtaining request includes information identifying the secure element. In particular embodiments of the invention, said data is transmitted to the secure element in response to a request for obtaining the data, and the obtaining request comprises a unique software configuration identifier representative of a current image. the code memory area of the secure element. Thus, the external device is able to recover this current image and effectively perform the simulation of the image of the modified memory by loading the data. Indeed, the arrangement and the current value of the bits of the code memory area can be known precisely. In particular embodiments of the invention, the signature is transmitted to the secure element with an activation request (ie a request for authorization to execute) the data obtained, in an encrypted command from the external device. . This provision secures the authorization process because the activation request and the signature required for the pre-activation verification (i.e. the execution authorization) are jointly protected.
[0011] It should be noted that the activation can be carried out immediately after the positive verification of the signatures, or be done later, for example at the next start of the secure element. This subsequent activation makes it possible not to interrupt the operation of the secure element especially when the data in question correspond to an update of its operating system or to a part thereof. Alternatively, the activation could be automatically implemented by the initial program, without an activation request being received. The activation concerns the data possibly requested by request or the code memory area as a whole. In this alternative, the signature remains encrypted by the external device for its transmission to the secure element. In particular embodiments of the invention, the obtained data is transmitted by the electronic device with an indication of a location or locations in the code memory area where the resulting data is to be loaded. The location of each bit of the code memory area is therefore defined by the external device, which ensures that the secure element will perform the same data loading as the external device will have simulated in the light of these indications. additional. The signature obtained from the simulated image is therefore necessarily identical to that which will have to be calculated initial program of the secure element following the loading of said data. In particular embodiments of the invention, the code memory zone is partitioned into P sub-zones, and the step of calculating the signature 25 comprises obtaining an elementary signature for each sub-zone and the sub-zone. obtaining the signature for the whole of the code memory zone, simulated or not, by composition of the P elementary signatures. In this configuration, the computation of an elementary signature is independent of the computation of another elementary signature, which makes it possible to carry out modular updates (for example by subfields) of the code memory zone with a calculation. Integrity (of a basic signature) restricted to modified subfields. Calculation costs can thus be substantially reduced. In particular embodiments of the invention, the composition of the P elementary signatures comprises the application of a bijective function.
[0012] For example, it may be an exclusive OR (XOR) function. Such a function makes it possible to dispense with a constraint on the order of the sub-areas for calculating the signature by composition of the elementary signatures. Thus, the external device and the secure element can affect different portions of the data to be loaded, to the sub-areas that make up the code memory area. In particular embodiments of the invention, the computation of the signature comprises a composition of the P elementary signatures in a predefined order of their corresponding sub-areas. This order may for example be fixed by identifiers specific to the sub-areas or the content of these sub-areas (ie the set of bits of the sub-area, sometimes called module), for example an ascending or descending order of the identifiers . In particular embodiments of the invention, the data comprises a script for the implementation by the secure element of a loading step in a part of the code memory zone of data received from the external device, a step of calculating a signature of the entire code memory area once the received data loaded, and a verification step of the signature calculated using a signature received from the external device so as to allow execution of the contents of the code memory area only if these two signatures are identical.
[0013] In particular embodiments of the invention, the code memory zone comprises software elements before loading the data (obtained by the external device and received from the external device by the secure element). Thus, the simulated image of the code memory zone after loading takes into account the data that would have been previously loaded in the code memory zone, during its initial state (aforementioned bit pattern) or during the operation of the element. secured. In particular embodiments of the invention, the data to be loaded into the code memory area represents only part of the available space in the code memory area.
[0014] For example, the data (the set of code blocks) to be loaded may occupy only half or a quarter of the bits constituting the code memory area. A third aspect of the invention relates to a device for securing the loading of data in a non-volatile memory of a secure element, said non-volatile memory comprising a memory zone, called code memory zone, defined by an initial program of the secure element and any modification is controlled solely by said initial program, the device being external to the secure element and comprising: a data acquisition module to be transmitted to the secure element; a module for simulating an image of the code memory zone modified by the loading of the data obtained in this code memory zone of the secure element; a module for calculating a signature of the simulated image of the code memory zone as a whole; and a transmission module, to said secure element, of the data obtained and of the calculated signature. In particular embodiments, the various steps of the aforementioned methods are determined by instructions of computer programs. Consequently, the invention also relates to a computer program on an information medium, this program being capable of being implemented by a microprocessor, this program comprising instructions adapted to the implementation of the steps of the methods such as: than mentioned above. This is for example an initial program as mentioned above. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape. The invention is also directed to a microprocessor-readable information medium, and including instructions of a computer program as mentioned above.
[0015] The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a microcircuit ROM, or a magnetic recording means, for example a hard disk, or a flash memory.
[0016] On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention may in particular be downloaded to a storage platform of an Internet type network.
[0017] Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question. A fourth aspect of the invention relates to a secure element comprising a microprocessor and comprising, in memory, an initial program as mentioned above. The secure element is, for example, in accordance with the ISO / IEC 7816 standards, the Common Criteria standards and / or the GlobalPlatform Card Specification v 2.2.1 standard. A fifth aspect of the invention relates to a system comprising such a secure element and a security device as evoked above, the external device for the secure element being the security device. The advantages, aims and particular characteristics of the security device, the secure element, the system, the information carrier and the aforementioned computer program are similar to those of the processes they implement. BRIEF DESCRIPTION OF THE FIGURES Other features and advantages of the invention will become apparent in the following description, illustrated by the accompanying figures which illustrate embodiments having no limiting character. In the figures: FIGS. 1a and 1b illustrate examples of context of implementation of embodiments; Figure 2 shows an exemplary architecture for the devices shown in Figures 1a and 1b; - Figure 3 is composed of Figures 3a and 3b representing in the form of flowcharts, the main steps of securing methods according to embodiments. DETAILED DESCRIPTION OF THE INVENTION In general, the invention relates to securing the loading of data coming from an external device into a non-volatile memory of a secure element, in particular in a memory zone, called a memory zone of code, defined by an initial program of the secure element and whose modification is controlled only by this initial program, and may contain compiled or interpreted code.
[0018] Compiled or interpreted code means any set of data containing a program and identified by the system (here the secure element) as such, and in particular a program in machine language whose instructions or code words ("bytecodes"). or binary) are executed directly by the system processor. As mentioned above, the code memory zone, in particular its size, is managed by an initial program or "base" of the secure element. It should be noted that the initial program generally takes the form of an operating system specific to the manufacturer of the system, here the secure element, this particular operating system operating independently of the code memory area subject to securing according to the invention. According to the present invention, when an external device obtains data to be transmitted to the secure element, for example at the request of the latter because these data are typically made available by the external device (sometimes called an update device) , the external device simulates an image of the code memory area of the secure element as it would be modified by the integral loading of the data in question. An "image" of a memory area defines the value and the location of each bit of this memory area. A signature is then calculated from this simulated image and sent to the secure element with said data. This signature is then used by the secure element to verify that the code memory area, in its entirety, is integrated once the data loading is complete. Indeed, this code memory zone is supposed to be identical to the image simulated by the external device. Thus according to the invention, the initial program of the secure element also calculates a signature on the entire code memory area after the full loading of the data possibly requested, to compare it to the received signature. The identity between the signatures respectively calculated by the external device on the expected image (simulated) of the code memory area after the loading of the data in question, and by the initial program of the secure element on the memory area after the actual loading of the data in question thus makes it possible to ensure that the code memory zone conforms to the image simulated by the external device, and therefore integrates. Figures 1a and 1b schematically illustrate exemplary embodiments of implementation context.
[0019] In Figure la, a secure element 12a, embedded or embedded in a host device 10a, is configured to exchange data with an external device 16a. The secure element 12a is, for example, in accordance with the ISO / IEC 5 7816 standards, the Common Criteria standards and / or the GlobalPlatform Card Specification v 2.2.1 standard. The secure element 12a is for example a subscriber identification module to a network 14a, SIM card type or UICC card. The host device 10a is for example a mobile terminal, in particular a smart mobile phone or Smartphone in English. The external device 16a is an (update) server connected to the network 14a. The network 14a is for example a mobile network supporting data and / or Internet communications. Thus, in this example context, the mobile terminal 10a and the server 16b communicate via the network 14a, using the identification module 12a. FIG. 1b illustrates another context of implementation of embodiments, in which a secure element 12b of a card 10b, in particular a bank card or an electronic access card, is configured to exchange data with an external device 16b. In this example, the secure element 12b comprises communication means according to the NFC (RFID tag type) communication protocol, and the external device 16b is a card reader also capable of communicating according to the NFC protocol (type RFID reader). Alternatively, the secure element and the external device may communicate in Bluetooth, or infra-red. The contexts illustrated in Figures 1a and 1b are not incompatible. Features presented in one context can be implemented in the other. Also, the invention is not limited to the contexts described above. For example, the invention may also be advantageously used in a context in which a secure element is embedded or integrated in a host device equipped with communication means according to the NFC protocol, with an external device itself equipped with communication means. Similar. The embedded or embedded secure element may also include NFC communication means used to communicate with the host device.
[0020] According to embodiments of the invention, the secure element sends a request for obtaining data (for example an application or an application part, notably an update) to the external device. In response to this request, the external device sends the requested data to the secure element, for example through the host device in which it is integrated or embedded. This data can be sensitive or not, that is to say that they can allow, during their execution, for example to manipulate data of a user. These data are intended to be stored (loaded) in a part of the non-volatile memory of the secure element, called the code memory zone, defined by an initial program of the secure element and whose modification is controlled solely by this program. initial, and likely to contain compiled or interpreted code. A signature calculated by the external device is sent with the requested data. According to the invention, this signature has the particularity of reflecting the image of the entire code memory area as it should be after the full loading of the requested data. Preferably, before any first data loading, the code area is "randomized". In other words, random values are randomly recorded in the code area. This state of the code field is known to the external device so that it can compute a signature reflecting the image of the entire code memory area as it should be after full data loading. Once the requested data has been loaded, the initial program of the secure element itself calculates a signature on the code memory zone as effectively modified by the loading of the requested data, in order to make sure that the set the code memory area has the expected appearance, that is to say is integrity. Figure 2 shows an exemplary architecture for the devices shown in Figure 1a or 1b, i.e., the secure element 12a or 12b, the external device 16a or 16b and / or the host device 10a. or 10b. According to this architecture, a device may comprise a communication bus 2 connected to the following elements: a processing unit 20 denoted CPU (acronym for Central Processing Unit in English), which may comprise one or more processors; a random access memory 22 or cache memory or volatile memory for example RAM (acronym for Random Access Memory in English); one or more nonvolatile memories 24; and - a communication interface 26.
[0021] The random access memory 22 comprises registers adapted to the recording of the variables and parameters created and modified during the execution of a computer program comprising instructions for carrying out the methods according to the invention during its implementation. . The instruction codes of the program stored in non-volatile memory are loaded into RAM memory for execution by the CPU processing unit. The nonvolatile memory (s) 24 are, for example, rewritable memories of the EEPROM or flash memory type that can constitute a medium within the meaning of the invention, that is to say that can comprise a computer program comprising instructions for the implementation of processes according to the invention.
[0022] According to the invention, in the case of the secure element, the ROM 24 may for example be divided into three memory zones 24a, 24b, 24c. The memory zone 24a comprises, for example, user data such as Java applets, configuration data of a JavaCard virtual machine, passwords, telephone numbers, applications, or various parameters. of personalization. The memory zone 24b corresponds to the code memory zone mentioned above and is thus dedicated to storing data and programs in compiled or interpreted code, for example an operating system of the secure element or any type of application in compiled code. or interpreted. These include, for example, a JavaCard virtual machine, a JavaCard Runtime Execution ("JavaCard Runtime Execution"), native applications, or the "Global System for Mobile Communications" framework. ). This memory zone can not be modified when executing compiled or interpreted code that it contains, in order to avoid execution errors. This locking of the memory zone 24b is guaranteed by the initial program of the secure element, the only program that can make changes to the code memory zone 24b after having temporarily disabled the latter. The memory zone 24b in its initial state, that is to say during its manufacture, is blank. A bit pattern is applied to the memory area 24b in its initial state prior to any loading or installation of compiled or interpreted code. This pattern is for example made up of bits all equal to zero or all equal to one. As a variant, this pattern may consist of certain bits at zero and other bits at one, thus making it possible to make the image of the bits of the memory zone 24b more complex in its initial state, and to improve the security of this memory zone. . In particular, a randomized pattern as mentioned above can be applied. This initial image is known in particular from the external update device 16a / 16b, which enables it to follow precisely the evolution of the bits of the memory zone 24b, and thus the evolution of the image of this memory zone 24b constituted of all the bits of the memory zone 24b, as and when the loading of new software elements in code compiled or interpreted in this memory area. The non-modifiable memory zone 24c comprises the initial program of the secure element, configured to control the size and integrity of the code memory zone 24b, in accordance with the invention. The initial program sets the size of the code memory area 24b for example by setting a zone start memory address 24b and a zone end memory address 24b. These addresses are stored for example in registry keys of the initial program. The initial program also controls the activation and deactivation of the software elements in interpreted code of the code memory zone 24b. In other words, the initial program is the only one that can authorize or prohibit the execution of compiled or interpreted code stored in the memory zone 24b. In particular, it deactivates any execution in the memory zone 24b when one of the software elements must be updated or when new data must be loaded therein. The initial program also includes mechanisms for updating the code memory area 24b, mechanisms configured to execute commands or update scripts for loading interpreted code binary blocks into this code memory area 24b. The ROM memory can be divided into more than three areas, all the software elements in compiled or interpreted code of the secure element being nevertheless necessarily stored in the dedicated code memory zone 24b. The communication interface 26 is adapted to transmit and receive data, for example via a telecommunications network or a read / write interface. It is for example via this interface that the external device and the secure element send / receive data and their signature. It is also through this interface that the host device can transmit the request for obtaining data from the secure element and receive this data from the external device to the secure element. Optionally, this architecture (typically for the host device 10a) also comprises an input / output interface 28 I / O (for Input / Output in English), for example a screen, a keyboard, a mouse or other device pointing system such as a touch screen. This interface allows for example a user to request an update of an operating system or an application in code compiled or interpreted already in memory or the loading of a new operating system or a new application in compiled or interpreted code.
[0023] Optionally, this architecture (typically for the external device 16a or 16b, and the secure element 12a or 12b) also includes a cryptoprocessor 29 receiving instructions from the processing unit 20 to encrypt / decrypt messages including for example a signature or data of the executable file compiled or interpreted. This encryption secures the transmission of data and signatures on the network 14a. The communication bus allows communication and interoperability between the various elements included in the device or connected to it. The representation of the bus is not limiting and, in particular, the processing unit is able to communicate instructions to any element of the device directly or via another element of this device. Figure 3a shows the main steps of a securing method according to embodiments, these steps being implemented by an external device (e.g., device 16a or 16b of Figure 1). FIG. 3b represents the main steps of a security method according to embodiments, these steps being implemented by a secure element (eg secure element 12a or 12b of FIG. 1), in particular by the initial program or a loading module provided in the initial program. In FIG. 3a, during a step 30, the external device receives a request for obtaining data, sent by the secure element.
[0024] Several mechanisms leading to the sending of the request can be envisaged, some automatic and others resulting from spontaneous actions of a user. By way of nonlimiting example, and as described above with reference to FIG. 2, a user of a host device, for example of the mobile terminal 10a of FIG. 1a, triggers the generation and sending of this request. . For example, the user can, via a keyboard or a touch screen of the mobile terminal 10a, ask the mobile terminal to check if there is, on the external update device, a version more recent application or operating system that currently installed on the SIM card disposed in the mobile terminal. In this context, the mobile terminal 10a interrogates the secure element in order to know the current version of this operating system or this application, for example through the "Select (Program)" commands (where Program corresponds to the system of operation or the application to be verified) and "GetData (9F7Fh)" or 9F7Fh is a parameter characterizing traceability data, for example data called "Card Production Life Cycle", then transmits this information to the external update device in order to be informed in return of the existence or not of a more recent version, for example spontaneously by using a command PING. As a variant, verifying the versions, involving the same exchanges, can be automatic at the start of the terminal.
[0025] In another variant, the external device can spontaneously inform, by a push mechanism, the terminal and the secure element of the existence of a new version of an operating system or an application. Once informed by the updating device of the existence of a more recent version, the terminal transmits this information to the secure element which can then send the request to obtain the most recent version (that is, ie an update) of part or all of the operating system code or application. Alternatively, the communications between the secure element and the external device are direct for the whole of the description below. Thus, the terminal transmits the data and messages exchanged (including the information that an update is available) without interpreting them, playing a simple relay role. In embodiments, this obtaining request comprises information making it possible to identify the secure element, for example a unique identifier of the secure element. This unique identifier makes it possible, for example, for the update device, and with the aid of an associated database, to retrieve the current or "current" software configuration of the secure element, and in particular of the code memory zone. 24b. Indeed, such a database can be used to store the history of the installations implemented and the updates of the secure element, as well as an indication on the implementation of these installations and updates. day. This indication is for example an installation script indicating the memory addresses or storage locations of the data to be loaded. In a variant, the obtaining request comprises an identifier of the current software configuration of the code memory zone 24b of the secure element.
[0026] This is for example a unique software configuration identifier which is associated, in a database associated with the external device, the history of the loads made in the memory zone 24b of the secure element. Thanks to this identifier, and therefore to the associated history, it is possible to know the software elements currently stored in the memory zone 24b, but also those previously loaded and deleted since, as well as the order in which these software elements have occurred. successors within the code memory area 24b. Thanks to this history, it is possible to find all the information that has occurred at different locations in the code memory zone 24b, in particular each bit of the memory zone 24b taken as a whole. Thus, the software configuration identified by this unique identifier is representative of the current image of the code memory zone 24b of the secure element, that is to say of the value and the location of each of the bits taking into account in particular, historically loaded software elements that have been deleted since but have not been overwritten (so they are always in memory). By way of example, this software configuration identifier may derive from CPLC data (Card Production Life Cycle in English) retrieved from the secure element, and which may be regularly transmitted to the external device by means of a PING command. . The CPLC data includes in particular an identifier of the manufacturer of the secure element, the type of secure element, an identifier of the operating system, and the current version thereof. They allow the external device to find the current image of the code memory zone 24b of the secure element from which this information is retrieved.
[0027] As a variant, the obtaining request may comprise the necessary information sufficient to reconstruct an image of the memory zone, without recourse to the recovery of additional data in an associated database. During a step 31, the external device retrieves the requested data (for example from an internal storage area or from a third-party device), and then simulates an image of the bits of the code memory zone 24b as they are. should be after loading the requested data. In other words, the external device simulates the location and the value of each of the bits of the code memory zone 24b as they would be modified or not by the loading of the compiled or interpreted code constituting the requested data. The loading of the requested data can in particular follow an installation or loading script (possibly generated by the external device), received by the secure element, and comprising a set of commands defining specific locations for all or part of the data requested. For example, the installation script can include an ALV file for address-length-value in English (memory-length-value address) indicating the locations (memory address and length) where the data (value) should be stored. . Thus, the external device is capable of reproducing, by simulation, the installation or loading of the requested data in a manner identical to what the secure element will do upon receipt of the installation script. The simulated image thus takes into account the bits that will be modified by loading the requested data, as well as those that will not be modified by this loading. In practice, an installation script established by the external device may comprise a set of commands intended to modify the contents of the code memory zone 24b, for example its size to extend or reduce the code storage capacity compiled or interpreted, and / or the installation parameters (ALV file mentioned above) of the requested data, thus making it possible to load each bit of data at a precise location (ie at a specific address) of the code memory area. The external device can thus privilege, for each bit of data, one location with respect to another, for example to replace the bits of an old version of a software element with the bits of the new version of this software element. Although the installation script is presented separately from the data to be loaded, the data can be an integral part of the installation script. Thus, the script can include one or more blocks or all the compiled or interpreted code constituting the data, to the values of the abovementioned ALV file. In addition, the installation script may include commands for establishing a secure channel between the host terminal and the secure element, and providing mutual authentication thereof. As an example, these commands conform to the GP 2.2.1 Amd D v1.1 (SCP03) specification so that a secure channel based on session keys generated from a pseudo-random value (typically based on on an identifier of the CPLC data above) is implemented during the loading of the requested data. Indeed, the secure channel established according to this specification has the advantage of allowing the pre-generation of a series of commands to transmit the elements mentioned above (signature, blocks of compiled or interpreted code, etc.), including a Store Data command for each entry in the ALV file. During a step 32, a signature of the simulated image of all the bits of the code memory zone 24b is then calculated by the external device. This signature is a function of the new value of the bits modified by the loading of the requested data, but also bits of the code memory zone which are located outside the locations modified by this loading. These last locations may contain the interpreted code of other data (software elements) previously loaded or the initial bit pattern, that is to say corresponding to the image of the bits of the code memory zone in its initial state ie when it is blank. It should be noted that between the possible previous loading, and the actual loading of the requested data in the code memory zone 24b of the secure element, the bits situated outside the modified locations must not have undergone a modification of location or value relative to the code memory area. These modifications, which are abnormal (malicious, or the result of a logical error during the execution of the loading script), would have the consequence of modifying a signature (described later) of the code memory zone 24b computed by the element secured relative to the expected value calculated on the simulated image of the memory zone 24b and characterizing an image of the memory zone devoid of such modifications. In practice, this signature is, for example, a message authentication code MAC (Message Authentication Code), a Hash-MAC, the result of a hash function, for example of the SHA-2 type, or again the result of the application of a cyclic redundancy code. The signature can be calculated on the simulated image of the bits of a single block of code, or on bit portions that cut out the simulated image of the bits of the whole of the memory zone 24b. In particular embodiments, the external device virtually divides the code memory area into a number P of sub-areas and calculates an elementary signature for each image portion corresponding to one of the P sub-areas. The signature of the image of the whole of the code memory zone is then obtained by composition of the P elementary signatures calculated. Thus, the external device may advantageously calculate only the elementary signatures corresponding to the sub-areas modified by the loading, and reuse the elementary signatures of the subfields which remain unchanged, when these have already been previously calculated. In particular, the external device can manage the content of each sub-area considered, that is to say the set of bits (called module) constituting it, independently of the content of other sub-areas. In other words, the external device can indicate the location of loading of a part of the requested data inside one or more modules, without necessarily indicating how the modules should be arranged relative to each other at the same time. within the code memory zone 24b.
[0028] The composition of the elementary signatures can be implemented using a bijective function applied to the P elementary signatures of the P sub-zones. This makes it possible not to take into account a possible order of the sub-areas (and therefore of the corresponding elementary signatures). This bijective function can be a function of a shared secret between the external device and the secure element. Thus, it is impossible to obtain the signature of the entire memory area from the only elementary signatures, that is to say without having knowledge of the bijective function or the secret parameter of this function. For example, an exclusive OR (XOR) can be used, or a MAC code can be calculated on all the elementary signatures.
[0029] As a variant, the signature of the image of the whole of the code memory zone can be obtained by composing the elementary signatures in a predefined order, for example linked to an order of the corresponding sub-zones, or to an order of theirs. content (called module). This predefined order can be previously stored as a shared secret between the external device and the secure element. By way of example, the sub-zones may be provided with an identifier (which may change over time) and the order may be that of the ascending or descending order of said sub-zone identifiers. During a step 33, the data requested with the installation script generated by the external device and making it possible to establish a secure channel as well as to load the requested data, are sent, with the signature calculated in step 32 to the host terminal for execution, that is, for loading the data into the secure element. In practice, the signature is sent in an encrypted (or encrypted) command, to prevent it from being modified or intercepted before being received by the secure element. In modes, the requested data, the installation script and the signature are all sent in the same encrypted (or encrypted) command. In other modes, a data activation request is sent with the signature in an encrypted command. In practice, the requested data, the signature and possibly the activation request can be sent via SMS (Over-The-Air), via the Internet, NFC, Bluetooth, via a wired connection or any other means of communication managed by the device. external and by the recipient of these elements (ie the secure element and / or the host device). As regards the operations performed by the secure element, it has been seen above that a request for obtaining data is sent, accompanied by an identifier, to allow the external device to simulate the bit image. of the entire code memory zone 24b of the secure element. This request for obtaining is generally sent by the initial program stored in memory zone 24c. For example, the initial program has disabled, by means of a command (for example "chmod"), all the data (operating system and applications) stored in the code memory zone 24b, so that update it or install new data. In what follows, it will be considered that it is the initial program (or a loading module of this initial program) that carries out the described steps, unless explicitly specified. As also mentioned above in connection with the external device, the host terminal receives the installation script, the data to be loaded (included in the script or not) and the signature calculated by the external device. The installation script as received is executed by the host terminal, leading to exchanges with the secure element as described below in connection with Figure 3b. In FIG. 3b relating to the subsequent steps performed by the initial program of the secure element, during a step 34, the secure element receives the data requested in the obtaining request as well as the signature calculated by the external device. in step 32 and optionally a request for activation of the requested data, sent by the external device in step 33. In practice, the host terminal executes the installation script leading to mutual authentication between the host terminal and the host. secure element, including the initial program of the latter, then the implementation of a secure communication channel between these two entities, the transmission of the requested data and finally the digital signature calculated by the external device. The mutual authentication may for example comprise the following steps: the host terminal sends to the initial program an identifier of the terminal IDterm; the initial program sends a random number R1 to the terminal; the terminal calculates and transmits an encryption Cl = f (IDterm, R1) to the initial program; the terminal transmits a random number R2 to the initial program; and the initial program returns an encryption C2 = f (IDterm, R2). The validation of C1 and C2 by respectively the initial program and the host terminal allows the mutual authentication of these two entities. The secure channel according to GP 2.2.1 Amd D v1.1 (SCP03) is then implemented, for example using a random value and / or a pseudo-random value (based on the random value and the CPLC data) provided in the installation script by the external device. The data to be loaded and the signature are then sent during the same communication session between the host terminal and the initial program. The data may be transmitted in a monolithic block, or alternatively in a plurality of independent blocks, for example using one or more SCP03 "Store Data" commands containing the ALV triplets. Note that the secure loading of the data requested in the secure element from the host terminal can be done independently of the external device, that is to say without the host terminal is necessarily connected to the external device. This is made possible by the installation script transmitted by the external device and that the terminal can run in a decorrelated manner upon its reception, for example during a next restart of the secure element when the initial program takes control of it. latest.
[0030] Other commands provided in the installation script may also be transmitted to the secure element for execution, for example commands to reduce or extend the code memory area 24b, and a command to activate the loaded data.
[0031] During a step 35, the requested data is then loaded into the code memory zone 24b of the secure element, monolithically or by block. In practice, the aforementioned installation script is executed by the loader of the initial program, leading to the loading and the installation of the requested data, either by loading a monolithic block or by progressive loading of successive blocks according to the instructions of ALV storage location. When the code memory area is partitioned into a number P of sub-areas as mentioned above, depending on the contents of the installation script, a sub-area may be modified by loading a block or blocks code compiled or interpreted, constituting the data to be loaded. Other subfields may not be modified, i.e., no loading is performed in these subfields during the present loading operation of the requested data. In the case where the code memory area is partitioned into sub-areas, the memory addresses for loading a block may be expressed relative to a start memory address of a particular sub-area. The advantage of block-by-block loading is that each block can be loaded independently of the other blocks. The loading can for example consist of directly memorizing a block at the memory address indicated in the installation script. Thus, during an update of a software element, this type of loading consists of a direct replacement of the block to be updated. Alternatively, the block to be loaded can be put on hold in a part of the code memory zone 24b dedicated to temporary storage (reserve area or spare memory area in English) before being positioned and stored in the location provided by the installation script. The loading method (direct or deferred) implemented by the initial program for updating the code memory zone 24b is known to the external device so that the latter can know the state of the bits of the reserve zone forming part of the code memory zone 24b. This ensures that the signature calculated in step 32 is consistent with the actual evolution of the memory area 24b in the secure element. When the requested data is loaded in its entirety (ie when the monolithic block is loaded or all code blocks are loaded as appropriate), ie when a loading session ends (note that a session can cover several cycles of switching on and off the secure element), a calculation step (step 36) of a signature is implemented by the initial program of the secure element. In general, this step is similar to the step 32 implemented by the external device, except that the signature is calculated on the current bit image of the entire code memory zone, ie say on the value of the bits of the code memory zone 24b once the loading of the requested data has been completed. Unlike the signature calculated by the external device from a simulation of the bits of the code memory area as they would in principle be modified after the loading of the requested data, the signature calculated by the initial program takes into account all the bits of the code memory zone 24b, and therefore any modifications (malicious or due to a loading error) that may have been made to the zone 24b. When the signature received in step 34 is derived from a composition of sub-area elementary signatures as described above, elementary signatures are also calculated by the initial program of the secure element in step 36, again after the actual loading of the code blocks for the considered sub-areas. Advantageously, each elementary signature can be calculated as soon as the code blocks to be loaded in the corresponding sub-area, if any, are actually loaded. In this case, in fact, the content (also called module) of the sub-zone considered is identical to that expected by the external device. Thus, it is not necessary to wait for the full loading of the requested data (and thus the loading in the other sub-areas) to calculate the elementary signature of the sub-zone considered. As a result, the elementary signatures can be individually calculated during the execution of the data loading script, reducing the computation time of the global signature once the end of the loading is reached.
[0032] These elementary signatures are then composed identically in step 32, that is to say using a bijective function or a composition in a predefined order according to the composition method used at step 32. The initial program and the external device are configured to perform the same composition. If necessary, they can exchange instructions to agree on a method of composition to implement for the calculation of signatures. A signature of the code memory zone reflecting the current image of the entire code memory area as it actually is after the complete loading of the requested data is thus obtained. It therefore incorporates any unexpected modifications made in the code memory zone 24b. During a step 37, the integrity of the code memory zone 24b is verified by comparing the signature calculated by the secure element in step 36 with the signature received from the external device in step 34. It is then necessary to check that the entire code memory zone has the expected appearance, that is to say that each bit of code of the loaded data has the value expected at the location provided by the external device. , and that the other memory bits are intact in terms of value but also of location. When the calculated signature differs, it means that at least one memory bit has been modified (added, deleted or modified) with respect to the simulation of the code memory area (i.e. bits of the set of code memory area) performed by the external device. In this case, the initial program of the secure element considers that the code memory zone 24b is not integrity and therefore does not allow execution, i.e. does not activate the data thus loaded. The secure element can then report the anomaly, for example, to the external device, which in response may return new data in an attempt to correct the integrity defect (if a code block has been received with errors), or else install a logical rule to avoid the reproduction of this fault, when it is due to an identified logical malfunction, for example when code compiled or interpreted is recorded durably in the reserve zone whereas this zone should be used only punctually as a buffer zone. Alternatively, the signature can be recalculated by the initial program the secure element and then check again after a new start of the secure element. When the signature calculated by the secure element and the signature received from the external device are identical, the initial program of the secure element authorizes the execution, i.e. activates the data thus loaded (step 38). For example, the initial program can execute a mode change command "chmod" in order to modify the rights in execution (for example "chmod + x"). According to various embodiments, the loaded data may be activated (i.e., made executable) immediately, or activation may occur only upon the next boot of the secure element. The latter mode has the advantage of not interrupting the operation of the secure element when the data in question correspond to an update of its operating system. In embodiments, new steps of calculation of signature (step 36) and verification (step 37) are implemented during the operation of the secure element (for example periodically, independently of the power offs of the secure element) to continually check that the code memory area is still intact. This makes it possible to identify any malicious modifications of the code memory zone that would have occurred after the last loading session. These new integrity checks can occur each time the secure element is powered up, at the request of a third party (for example from the external device or a network operator), or at each occurrence of an event. predetermined (eg user request, expiration of a counter, receipt of a specific command, low CPU usage).
[0033] In the case of an integrity fault detection of the code memory zone 24b, the initial program may decide to deactivate the interpreted code of this memory zone and to warn the external device. Reactivation of the interpreted code is performed only overlay of a code memory zone 24b completely intact. The foregoing examples are only embodiments of the invention which is not limited thereto. For example, as described above, the requested data blocks can be transmitted to the initial program using "Store Data" commands for each block, then these blocks can be loaded either directly to the intended memory locations, or via a temporary storage in a spare memory area (step 35). Alternatively, the host terminal can transmit a new script, called update, that the initial program will execute, this update script including the different blocks of code interpreted data requested and the indications of the planned loading locations . This update script is stored in the reserve memory area of the zone 24b, before being executed by the initial program, in order to modify the code memory zone 24b by the progressive loading of the different blocks of interpreted code of the data. requested. Furthermore, in the preceding examples, the secure element issues a request for obtaining (step 30). In variants of the invention, the external device pushes the data to the secure element according to the mechanism known by the Anglicism "push" which does not require the aforementioned request. In these variants, the external device knows the history of the loadings for the secure element (thanks for example to the mentioned database) and, when it has for example a relevant update for the secure element, it is capable of performing the simulation of the image of the code memory zone, the calculation of the signature (via the elementary signatures if necessary) and the transmission in "push" mode of the set to the secure element.
权利要求:
Claims (16)
[0001]
REVENDICATIONS1. A method of securing the loading of data in a non-volatile memory of a secure element, said non-volatile memory comprising a memory zone, called code memory zone, defined by an initial program of the secure element and whose modification is controlled only by said initial program, said method comprising the following steps implemented by a device external to the secure element: - obtaining data to be transmitted to the secure element; simulating an image of the modified code memory zone by loading the data obtained in this code memory zone of the secure element; calculating a signature of the simulated image of the code memory zone as a whole; and transmitting, to said secure element, the data obtained and the calculated signature.
[0002]
2. A method for securing the loading of data in a non-volatile memory of a secure element, said non-volatile memory comprising a memory zone, called code memory zone, defined by an initial program of the secure element and any modification is controlled only by said initial program, said method comprising the following steps implemented by the secure element: - receiving, from an external device, data and a signature; - load, in a part of the code memory area, the data received from the external device; - calculate a signature of the entire code memory area once the data loaded; and - checking the signature calculated using the received signature, so as to authorize the execution of the contents of the code memory area only if these two signatures are identical.
[0003]
3. Securing method according to any one of claims 1 or 2, characterized in that said data is transmitted to the secure element in response to a request for obtaining the data, and the request for obtaining includes information identifying the secure element.
[0004]
4. Securing method according to any one of claims 1 to 3, characterized in that said data is transmitted to the secure element in response to a request for obtaining the data, the obtaining request comprises a unique identifier of software configuration representative of a current image of the code memory area of the secure element.
[0005]
5. Securing method according to any one of claims 1 to 4, characterized in that the signature is transmitted to the secure element with a request for activation of the data obtained in an encrypted command from the external device.
[0006]
Security method according to one of claims 1 to 5, characterized in that the data is transmitted by the external device with an indication of a location or locations in the code memory area where the data is to be loaded.
[0007]
7. Securing method according to any one of claims 1 to 6, characterized in that said code memory area is partitioned in P sub-areas, and in that the step of calculating the signature comprises obtaining an elementary signature for each sub-zone and obtaining said signature for the whole of the code memory zone, simulated or not, by composition of the P elementary signatures.
[0008]
8. Securing method according to claim 7, characterized in that the composition of the P elementary signatures comprises the application of a bijective function.
[0009]
9. Securing method according to claim 7, characterized in that the computation of the signature comprises a composition of the P elementary signatures in a predefined order of their corresponding sub-areas.
[0010]
10. security method according to any one of claims 1 to 9, characterized in that said data comprises a script for the implementation by the secure element, a loading step in a part of the code zonemoire , data received from the external device, a step of calculating a signature of the entire code memory area once the received data loaded, and a verification step of the signature calculated using a signature received from the external device, so as to allow the execution of the contents of the code memory area only if these two signatures are identical.
[0011]
11. Securing method according to any one of claims 1 to 10, characterized in that said code memory zone comprises software elements before loading said data.
[0012]
12. Securing method according to any one of claims 1 to 11, characterized in that said data to be loaded in the code memory area represent only part of the available space in the code memory area.
[0013]
13. Initial program comprising instructions for the implementation of the following steps, when it is loaded and executed by a microprocessor of a secure element comprising a non-volatile memory which itself comprises a memory zone, called memory zone of code, defined by the initial program and for which any modification is controlled solely by said initial program: - receiving, from an external device, data and a signature; - load, in a part of the code memory area, the data received from the external device; - calculate a signature of the entire code memory area once the data loaded; and - checking the signature calculated using the received signature, so as to authorize the execution of the contents of the code memory area only if these two signatures are identical.
[0014]
14. A secure element comprising a microprocessor and comprising, in memory, an initial program according to claim 13.
[0015]
15. Device for securing the loading of data in a non-volatile memory of a secure element, said non-volatile memory comprising a memory zone, called code memory zone, defined by an initial program of the secure element and any modification is controlled only by said initial program, the device being external to the secure element and comprising: a data acquisition module to be transmitted to the secure element; a module for simulating an image of the code memory zone modified by the loading of the data obtained in this code memory zone of the secure element; a module for calculating a signature of the simulated image of the code memory zone as a whole; and a transmission module, to said secure element, of the data obtained and of the calculated signature.
[0016]
16. System comprising a securing device according to claim 15 and a secure element according to claim 14 for which the external device is the securing device.
类似技术:
公开号 | 公开日 | 专利标题
EP3123387B1|2019-03-13|Securing of the loading of data into a nonvolatile memory of a secure element
US10419216B2|2019-09-17|Keying infrastructure
EP2688010B1|2020-03-04|Update of an operating system for a secure element
WO2015121418A2|2015-08-20|Method of deploying a set of software application|
EP2741466B1|2018-02-14|Method and system for managing a built-in secured element eSE
EP2024798A1|2009-02-18|Secure terminal configuration method and device by means of a boot data storage device
WO2015150689A1|2015-10-08|Method for the secure configuration of an application in a user terminal
WO2015092307A1|2015-06-25|Method for testing and updating the system of a terminal by means of a subscriber identity module and associated devices
EP2793498B1|2017-08-16|Secure element for telecommunication terminal
EP3014849B1|2018-08-01|Method for changing an authentication key
EP2912598B1|2019-07-31|Method for downloading at least one software component onto a computing device, and associated computer program product, computing device and computer system
EP3531729A1|2019-08-28|Configuration of an on-board subscriber identity module
EP3646215B1|2021-11-24|Method for controlling access to a security module
FR3094515A1|2020-10-02|secure code execution process, corresponding devices, system and programs
FR3080927A1|2019-11-08|AUTHENTICATION OF AN ELECTRONIC CIRCUIT
EP2455879A1|2012-05-23|Method for controlled re-allocation of the memory of a device and associated computer program
FR3060804A1|2018-06-22|METHOD FOR CONFIGURING A CRYPTOGRAPHIC PROGRAM TO BE EXECUTED BY A TERMINAL
FR3025631A1|2016-03-11|SECURE SELECTION OF AN APPLICATION IN A CHIP OR EQUIVALENT CARD
同族专利:
公开号 | 公开日
PL3123387T3|2019-09-30|
JP2017509082A|2017-03-30|
EP3123387A1|2017-02-01|
WO2015145071A1|2015-10-01|
US20170109546A1|2017-04-20|
KR102036411B1|2019-10-24|
EP3123387B1|2019-03-13|
PL3123387T4|2019-09-30|
CN106133739A|2016-11-16|
CN106133739B|2020-03-17|
US10268845B2|2019-04-23|
JP6585072B2|2019-10-02|
FR3019347B1|2017-07-21|
KR20160136386A|2016-11-29|
ES2734370T3|2019-12-05|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US6233683B1|1997-03-24|2001-05-15|Visa International Service Association|System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card|
US8239686B1|2006-04-27|2012-08-07|Vudu, Inc.|Method and system for protecting against the execution of unauthorized software|
US20120246442A1|2011-03-23|2012-09-27|Boris Dolgunov|Storage device and method for updating data in a partition of the storage device|
JP2000322253A|1999-05-14|2000-11-24|Namco Ltd|Security system|
KR20020075439A|2000-02-17|2002-10-04|제너럴 인스트루먼트 코포레이션|Method and apparatus for providing secure control of software or firmware code downloading and secure operation of a computing device receiving downloaded code|
JP4186466B2|2002-01-16|2008-11-26|ソニー株式会社|Content distribution system, content distribution method, information processing apparatus, and computer program|
JP4736370B2|2004-07-27|2011-07-27|株式会社日立製作所|Hosting environment construction method and computer system|
KR100617904B1|2005-07-21|2006-08-30|주식회사 하이스마텍|Smart card management system for installing and managing multiple card identification information in smart card and method therefor|
WO2008018457A1|2006-08-10|2008-02-14|Panasonic Corporation|Memory controller, secure memory card, and secure memory card system|
US20120324446A1|2011-06-17|2012-12-20|Microsoft Corporation|Virtual machine image composition and signing|
FR2993682B1|2012-07-20|2014-08-22|Oberthur Technologies|UPDATE OF AN OPERATING SYSTEM FOR SECURE ELEMENT|EP3086254A1|2015-04-22|2016-10-26|Gemalto Sa|Method of managing applications in a secure element when updating the operating system|
KR20170037435A|2015-09-25|2017-04-04|삼성전자주식회사|Operation Method of Payment Device for Selectively Enabling Payment Function According to Validity of Host|
US10911939B2|2017-06-14|2021-02-02|Huawei Technologies Co., Ltd.|Embedded universal integrated circuit card profile management method and apparatus|
JP6949416B2|2017-07-13|2021-10-13|株式会社デンソー|Electronic control device, program tampering detection method|
DE102017006950A1|2017-07-21|2019-01-24|Giesecke+Devrient Mobile Security Gmbh|Maintaining a network connection|
法律状态:
2016-02-19| PLFP| Fee payment|Year of fee payment: 3 |
2017-02-21| PLFP| Fee payment|Year of fee payment: 4 |
2018-02-20| PLFP| Fee payment|Year of fee payment: 5 |
2020-02-20| PLFP| Fee payment|Year of fee payment: 7 |
2020-11-27| CA| Change of address|Effective date: 20201019 |
2020-11-27| CD| Change of name or company name|Owner name: IDEMIA FRANCE, FR Effective date: 20201019 |
2021-02-18| PLFP| Fee payment|Year of fee payment: 8 |
2022-02-21| PLFP| Fee payment|Year of fee payment: 9 |
优先权:
申请号 | 申请日 | 专利标题
FR1452519A|FR3019347B1|2014-03-25|2014-03-25|SECURING THE LOADING OF DATA IN A NON-VOLATILE MEMORY OF A SECURE ELEMENT|FR1452519A| FR3019347B1|2014-03-25|2014-03-25|SECURING THE LOADING OF DATA IN A NON-VOLATILE MEMORY OF A SECURE ELEMENT|
KR1020167029313A| KR102036411B1|2014-03-25|2015-03-25|Securing of the loading of data into a nonvolatile memory of a secure element|
PCT/FR2015/050758| WO2015145071A1|2014-03-25|2015-03-25|Securing of the loading of data into a nonvolatile memory of a secure element|
JP2016558317A| JP6585072B2|2014-03-25|2015-03-25|Safe reading of data into non-volatile memory or secure elements|
PL15717564T| PL3123387T4|2014-03-25|2015-03-25|Securing of the loading of data into a nonvolatile memory of a secure element|
EP15717564.7A| EP3123387B1|2014-03-25|2015-03-25|Securing of the loading of data into a nonvolatile memory of a secure element|
CN201580015759.XA| CN106133739B|2014-03-25|2015-03-25|Security protection of loading of data into non-volatile memory of a secure element|
US15/128,512| US10268845B2|2014-03-25|2015-03-25|Securing of the loading of data into a nonvolatile memory of a secure element|
ES15717564T| ES2734370T3|2014-03-25|2015-03-25|Protection of data loading in a non-volatile memory of a security element|
[返回顶部]